package com.wx.gof.pattern.behavioral.memo;

/**
 * @ClassName Application
 * @Author wx
 * @Description
 * 定义:
 * 保存对象的内部状态(可以是全部属性或者部分属性),以便在适当时恢复状态
 * 描述:
 * 保存快照副本,可以随时做恢复工作,相当于撤销功能,备忘录模式常常与命令模式一同使用
 * 使用场景:
 * 1.保存并能随时恢复数据相关业务场景
 * 优点:
 * 1.为用户提供一种可恢复机制
 * 2.存档信息的封装
 * 缺点:
 * 1.需要额外的副本对象,资源占用
 * 理解:
 * 应用程序-备忘录模式(emmmm~ 一般用不到，使用场景比较少， 开发编辑文档类的系统会用到)
 * @Date 2018-12-14-21:46
 */
public class Application {
    public static void main(String[] agrs) {
        Notes notes = new Notes("Java笔记","jvm也叫虚拟机","图片1");
        System.out.println(notes);
        notes.saveNotesCopy();
        notes.setContent("jvm也叫虚拟机,虚拟机内部执行的是java字节码");
        System.out.println(notes);
        notes.saveNotesCopy();
        notes.setTitle("Jvm笔记");
        System.out.println(notes);
        notes.undo();
        System.out.println(notes);
    }
}
